<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Administration extends CI_Model
{
	function __construct()
	{
		parent::__construct();
	}
        
        function return_date_main()
        {
            $query= $this->db->get_where('prode_cat_date',array('dtIsMain'=>1));
            if ($query->num_rows() != 0)
            {
                    $dateId = $query->row('dtId');
                    
                    //Evaluar si hizo o no la jugada
                    $query = $this->db->get_where('prode_cat_game_format',array('dtId'=>$dateId));
                    
                    $game = array();
                    
                    foreach($query->result() as $valor)
                    {
                            

                                    $game[] = array(
                                                  'localName'	=> $this->BuscarNombre($valor->tmIdLocal),
                                                  'localImage'	=> $this->BuscarLogo($valor->tmIdLocal),
                                                  'visitName'	=> $this->BuscarNombre($valor->tmIdVisit),
                                                  'visitImage'	=> $this->BuscarLogo($valor->tmIdVisit),
                                                  );
                    }
                    
                    return $game;
            }
            else
            {
                    return false;
            }
        }
        
        function return_positions()
        {
		$queryUsers = $this->db->get('prode_cat_user');
		if($queryUsers->num_rows() != 0)
		{
			$res = array();
			
			foreach($queryUsers->result() as $usr)
			{
				$puntos = 0;
				$usrId = $usr->usrId;
				$query= $this->db->get_where('prode_cat_date',array( 'dtIsMain' => 0 ));
		
				if ($query->num_rows() != 0)
				{
					
					foreach($query->result() as $valor)
					{						
						//Formato de la fecha
						$queryDate = $this->db->get_where('prode_cat_game_format',array( 'dtId' => $valor->dtId ));
						
						foreach($queryDate->result() as $dates)
						{
							//comparar resultados
							//resultado del game
							$queryGame = $this->db->get_where('prode_cat_game_result',array( 'gfId' => $dates->gfId ));
							$resultado = $queryGame->row('gmResult');
							
							//resultado del usuario
							$queryGameUsr = $this->db->get_where('prode_cat_game',array( 'gfId' => $dates->gfId, 'usrId' => $usrId ));
							$resultadoUsr = $queryGameUsr->row('gmResult');
							$resultadoWillCard = $queryGameUsr->row('gmWillCard');
					
							if($resultado == $resultadoUsr || $resultado == $resultadoWillCard)
							{
								$puntos++;
							}
						}
					}
				}
				
				//...................................................
				//.. Preguntar por fecha parcial ....................
				//...................................................
				if($this->date_limit() == true)
				{
					$query= $this->db->get_where('prode_cat_date',array( 'dtIsMain' => 1 ));
					
					if($query->num_rows() != 0)
					{
						$queryDate = $this->db->get_where('prode_cat_game_format',array( 'dtId' => $query->row('dtId') ));
						
						foreach($queryDate->result() as $dates)
						{
							//comparar resultados
							//resultado del game
							$queryGame = $this->db->get_where('prode_cat_game_result',array( 'gfId' => $dates->gfId ));
							if($queryGame->num_rows() != 0)
							{
								$resultado = $queryGame->row('gmResult');
								
								//resultado del usuario
								$queryGameUsr = $this->db->get_where('prode_cat_game',array( 'gfId' => $dates->gfId, 'usrId' => $usrId ));
								$resultadoUsr = $queryGameUsr->row('gmResult');
								$resultadoWillCard = $queryGameUsr->row('gmWillCard');
						
								if($resultado == $resultadoUsr || $resultado == $resultadoWillCard)
								{
									$puntos++;
								}
							}
						}
					}
				}
				//...................................................
				
				$res[] = array(
						'points'	=> $puntos,
						'name'	 	=> $usr->usrName,
						'id'		=> $usr->usrId,
						'realName'	=> $usr->usrCompletName
						);
			}
			
			arsort($res);
			return $res;
		}
		else
		{
			return 0;
		}
		
        }
	
	function return_activity()
	{
		//$query= $this->db->query('CALL activities()');
		
		$this->db->select('prode_cat_user.usrName,prode_cat_user.usrCompletName,prode_cat_user.pictureUrl,prode_cat_operation.opDescription,prode_cat_activity.actDate');
		$this->db->from('prode_cat_activity');
		$this->db->join('prode_cat_user', 'prode_cat_user.usrId = prode_cat_activity.usrId');
		$this->db->join('prode_cat_operation', 'prode_cat_operation.opId = prode_cat_activity.actOp');
		$array = array('prode_cat_activity.usrId != '=>0,'prode_cat_activity.actOp != '=>0);
		$this->db->where($array);
		$this->db->order_by("prode_cat_activity.actDate", "desc");
		$this->db->limit(5);
		$query = $this->db->get();
		
		if ($query->num_rows() != 0)
		    {
			$activ = array();
			
			foreach($query->result() as $valor)
				{
				$activ[] = array(
					      'name' 		=> ($valor->usrName == "" || $valor->usrCompletName == null) ? substr($valor->usrName, 0 ,8).".." : substr($valor->usrCompletName, 0, 8)."..",
					      'operation' 	=> $valor->opDescription,
					      'date'		=> $valor->actDate,
					      'picture'		=> $valor->pictureUrl
					      );
				}
			return $activ;
		    }
		else
		    {
			return false;
		    }
		
	}
        
        function BuscarNombre($idTeam)
	{
		$query= $this->db->get_where('prode_cat_team',array('tmId'=>$idTeam));
		
		return $query->row('tmDescription');
	}
	
	function BuscarLogo($idTeam)
	{
		$query= $this->db->get_where('prode_cat_team',array('tmId'=>$idTeam));
		
		return $query->row('tmImage');
	}
	
	function return_dates()
	{
		$query = $this->db->get_where('prode_cat_date', array('dtIsMain' => 0));
		
		//return $query->result_array();
		$array = array();
		
		if($query->num_rows() > 0)
		{
			foreach($query->result() as $r)
			{
				
				$array[] = array(
						 'dtId' 	 => $r->dtId,
						 'dtDescription' => $r->dtDescription
						 );
			}
		}
		
		//..................................................................
		//... Region resultado parcial fecha actual ........................
		//..................................................................
		
		//preguntar si termino la fecha actual
		$query= $this->db->get_where('prode_cat_date',array( 'dtIsMain' => 1 ));
		
		if($query->num_rows() != 0)
		{
			//preguntar si la fecha ya cerro
			if($this->date_limit() == true)
			{
				$array[] = array(
						 'dtId' 	 => $query->row('dtId'),
						 'dtDescription' => $query->row('dtDescription')
						);
			}
		}
			
		return $array;	
	}
        
	function date_limit()
	{
		$query= $this->db->get_where('prode_cat_date',array('dtIsMain'=>1));
		if ($query->num_rows() != 0)
		{
			$date = $query->row('dtDayLimit');
			$fecha2 = date("Y-m-d"); 
			
			$fecha1 = str_replace('/','-',$date);
			
			//$fecha1 => fecha limite de juego
			//$fecha2 => fecha actual
			
			if($fecha1 > $fecha2)
			{
				return false;
			}
			else
			{
				if($fecha1 == $fecha2)
				{
					//preguntar si son menos de las 18:00 horas
					if( date("G") >= 18 )
					{
						return true;
					}
					else
					{
						return false;
					}
				}
				else
				{
					return true;
				}
			}
		}
		else
		{
			return false;
		}
	}
	
	function result_for_date($idFecha)
	{
		$queryUsers = $this->db->get('prode_cat_user');
		if($queryUsers->num_rows() != 0)
		{
			$res = array();
			
			foreach($queryUsers->result() as $usr)
			{
				$puntos = 0;
				$usrId = $usr->usrId;
				$query= $this->db->get_where('prode_cat_date',array( 'dtId' => $idFecha ));
		
				if ($query->num_rows() != 0)
				{
					
					//foreach($query->result() as $valor)
					//{						
						//Formato de la fecha
						$queryDate = $this->db->get_where('prode_cat_game_format',array( 'dtId' => $query->row('dtId') ));
						
						foreach($queryDate->result() as $dates)
						{
							//comparar resultados
							//resultado del game
							$queryGame = $this->db->get_where('prode_cat_game_result',array( 'gfId' => $dates->gfId ));
							if($queryGame->num_rows() != 0)
							{
								$resultado = $queryGame->row('gmResult');
								
								//resultado del usuario
								$queryGameUsr = $this->db->get_where('prode_cat_game',array( 'gfId' => $dates->gfId, 'usrId' => $usrId ));
								$resultadoUsr = $queryGameUsr->row('gmResult');
								$resultadoWillCard = $queryGameUsr->row('gmWillCard');
						
								if($resultado == $resultadoUsr || $resultado == $resultadoWillCard)
								{
									$puntos++;
								}
							}
						}
					//}
				}
				
				$res[] = array(
						'points'	=> $puntos,
						'name'	 	=> $usr->usrName,
						'id'		=> $usr->usrId
						);
			}
			arsort($res);
			return $res;
		}
		else
		{
			return 0;
		}
		
	}
}
?>